package main

import "fmt"

func err() {
	//抛出panic会导致当前函数执行中断
	//当前函数若有抛出panic，就要在当前函数处理，否则会抛给上层函数处理，导致上层函数执行中断
	defer func() {
		err := recover()
		if err != nil {
			fmt.Println(err)
		}
	}()

	fmt.Println("err hello")
	panic("出错了")
	fmt.Println("err end") //不会打印
}

func pp() {
	fmt.Println("pp hello")
	fmt.Println("pp end")
}

func main() {
	err()
	pp()
}
